#ifndef __TEXTURE_STATE_H__
#define __TEXTURE_STATE_H__

#include "RenderState.h"
#include "Texture.h"

class TextureState : public RenderState
{
public:
	TextureState();
	virtual ~TextureState();

	virtual Type get_type() const;
	virtual void update( RenderState*& old_state );
	virtual void restore( RenderState* old_state );
	virtual RenderState* copy();

	enum { MAX_TEXTURES = 4 };

	void set( unsigned int index, Texture* ptex );
	Texture* get( unsigned int index );
	TexturePtr remove( unsigned int index );
	void remove_all();

	unsigned int get_num() const;

protected:
	TexturePtr m_texture[MAX_TEXTURES];
};

#endif

